// 1、服务端
// 001、引入net模块
const net = require("net");
const protobuf = require("protobufjs");

// 002、创建服务器
const server = net.createServer();

// 003、绑定端口号
server.listen(9000);

// 004、接受客户端的连接请求
// //因为要实现多人聊天，因此需要用一个数据将所有用户存起来
// let clients = [];

server.on("connection", (client) => {
  //客户端向服务器发送数据转码
  // client.setEnCoding("utf8");

  //监听用户向服务器发送数据
  client.on("data", (data) => {
    try {
      console.log("data:::  ", data);
      protobuf.load('args.proto').then((root)=>{
        // const doc = { args1: 1, args2: 30, flag: 1 };
        const User = root.lookupType('args.Args');
        // var errMsg = User.verify(doc);
        // if (errMsg)
        //   throw Error(errMsg);
        // var message = User.create(doc);
        // var buffer = User.encode(message).finish();
        // node参数值decode有点问题，可能是proto配置不太对、或者工具包解析有问题
        var obj = User.decode(data);
        console.log(obj)
        let res = null;
        if(obj.flag == 1){
          res = Number(obj.args1) + Number(obj.args2);
        }else if(obj.flag == 2){
          res = Number(obj.args1) - Number(obj.args2);
        }
        // client.write(res+"    \r\n\r\n");
        client.write(`${res}\r\n`);
      })
    } catch (e) {
      console.log("err:::  ", e);
    }
  });

  //监听关闭
  client.on("close", () => {});

  //监听服务器是否出错

  client.on("error", () => {});
});
